import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt


img = cv.imread(r'Lena.jpg',0)
HIST=cv.calcHist([img],[0],None,[256],[0,256])

plt.hist(img.ravel(),256,[0,256])
#ravel()将多维数组降到一维
print(img)
print(img.ravel())

plt.xlim(0,255)
plt.show()#应用绘图绘制

_,bw = cv.threshold(img,0,0xff,cv.THRESH_OTSU)#应用大津算法
cv.imshow('result',bw)
cv.waitKey()



'''
hist = cv2.calcHist(images, channels, mask, histSize, ranges, accumulate)
参数：
hist表示直方图，返回的是一个二维数组
images表示原始图像
channels表示指定通道，通道编号需要用中括号括起，输入图像是灰度图像时，它的值为[0]，彩色图像则为[0]、[1]、[2]，分别表示B、G、R
mask表示掩码图像，统计整副图像的直方图，设为None，统计图像的某一部分直方图时，需要掩码图像
histSize表示BINS的数量，参数子集的数目，如下图当bins=3表示三个灰度级
'''

